﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ArmoryAPI
{
    /// <summary>
    /// Represents a World of Warcraft guild showing basic information such as the number of members and guild level
    /// </summary>
    public class Guild
    {
        #region Members

            private String _name;
            private String _realm;
            private Int16 _level;
            private Int32 _memberCount;
            private Int32 _achievementPoints;

        #endregion

        #region Properties

            /// <summary>
            /// Name of the guild
            /// </summary>
            public String Name
            {
                get
                {
                    return _name;
                }
            }

            /// <summary>
            /// The realm the guild is located on
            /// </summary>
            public String Realm
            {
                get
                {
                    return _realm;
                }
            }

            /// <summary>
            /// The level of the guild
            /// </summary>
            public Int16 Level
            {
                get
                {
                    return _level;
                }
            }

            /// <summary>
            /// The number of members in the guild
            /// </summary>
            public Int32 MemberCount
            {
                get
                {
                    return _memberCount;
                }
            }

            /// <summary>
            /// The accumulative number of achievement points earned by the guild
            /// </summary>
            public Int32 AchievementPoints
            {
                get
                {
                    return _achievementPoints;
                }
            }

        #endregion
        
        #region Constructors

            /// <summary>
            /// Constructs an empty Guild
            /// </summary>
            public Guild()
            {
                _name = String.Empty;
                _realm = String.Empty;
                _level = -1;
                _memberCount = -1;
                _achievementPoints = -1;
            }

            internal Guild(String name, String realm, Int16 level, Int32 memberCount, Int32 achievementPoints)
            {
                _name = name;
                _realm = realm;
                _level = level;
                _memberCount = memberCount;
                _achievementPoints = achievementPoints;
            }

        #endregion
    }
}
